Technical Field
This disclosure relates to computing systems, and more particularly to translating computer program source code from a first high level language to a second high level language.
Description of the Related Art
Most businesses today rely heavily on computer programs to efficiently and effectively run and manage their operations. For example, businesses rely on computer programs to manage inventory, distribution, accounting, employee records, and so on. Likewise, individuals rely on computer programs to manage and enhance their daily lives. For example, individuals may use various programs on desktop or mobile devices to create documents, manage their personal finances, and track their kid's school activities. As such, computer programs are an indispensable part of our everyday lives.
Given the importance of computer programs in the society, maintaining such programs is of critical importance. When a program fails, the consequences can be far reaching. In addition to ensuring computer programs are properly maintained, it is often the case the programs are enhanced or modified to add new features. Such new features may be required to accommodate a new business process or procedure, or may simply be a feature deemed desirable by users of the computer program.
One important feature of modern computer programs are that they are typically written in a high level language, such as the C++ programming language or the Java® programming language (Java, or JAVA as used herein, is a registered trademark of Oracle and/or its affiliates). This high level language representation of a computer program is referred to as the source (program) code. High level programming languages are easier for people to read and understand than programs that are not written in a high level language. Consequently, they are easier to maintain and enhance as described above. In addition, such languages allow for the expression of more abstract ideas and the creation of more functionality with less programmer effort.
While maintaining the original and revised source code is important, in some cases there is a desire to convert (or translate) source code from one high level language to another high level language. Some reasons for converting from one high level language to another high level language may include a move to a new development system or environment, a desire to take advantage of features not available in the original source code, a desire for more portable program code, or otherwise. While some tools exist to aid in automating the conversion from one high level language to another, it is often very difficult to relate converted source code to the original source code from which it was generated.